import CryptoJS from "crypto-js";
export default {
  data () {
    const _k = 'i93H934A39dfffP2';
    return {
      key: CryptoJS.enc.Latin1.parse(_k)
      // iv: CryptoJS.enc.Latin1.parse(_k)
    }
  },
  methods: {
    //加密
    setPwd (data) {
      let self = this;
      let resultObj = CryptoJS.AES.encrypt(data, self.key, {
        iv: self.key,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
      let result = resultObj.ciphertext.toString();
      return result.toUpperCase();
    },
    //解密
    getPwd (data) {
      let self = this;
      let _hex = CryptoJS.enc.Hex.parse(data);
      let _data = CryptoJS.enc.Base64.stringify(_hex);
      let resultObj = CryptoJS.AES.decrypt(_data, self.key, {
        iv: self.key,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      })
      let result = resultObj.toString(CryptoJS.enc.Utf8);
      return result;
    }
  }
}

//JS
// var plaintText = '0.01mpgs@';
// var _key = 'i93H934A39dfffP2';

// console.log(CryptoJS)
// var key  = CryptoJS.enc.Latin1.parse(_key);
// var iv   = CryptoJS.enc.Latin1.parse(_key);
// //加密
// var encrypted = CryptoJS.AES.encrypt(plaintText,key,{
//   iv:iv,
//   mode:CryptoJS.mode.CBC,
//   padding:CryptoJS.pad.Pkcs7
// });
// console.log(encrypted);
// console.log(encrypted.ciphertext.toString());

//Node
// var crypto = require("crypto");

// console.log(crypto.listCiphers())
// /**
//  * aes-128-cbc对称加密
//  * @param {String} data，加密的明文
//  * @param {String} secretKey，密钥
//  * @param {Buffer} iv，向量，16位字节数组
//  * @return {String} 密文
//  * @api public
//  * @remark 密钥的生成规则：普通字符串，用UTF8转换成Buffer后，需要对此计算MD5，再转换成Buffer对象。
//  */
// function cbcEncrypt(data, secretKey, iv) {
//  secretKey = new Buffer(secretKey, "utf8");
//  secretKey = crypto.createHash("md5").update(secretKey).digest("hex");
//  secretKey = new Buffer(secretKey, "hex");
//  var cipher = crypto.createCipheriv("aes-128-cbc", secretKey, iv), coder = [];
//  coder.push(cipher.update(data, "utf8", "hex"))
//  coder.push(cipher.final("hex"));
//  return coder.join("");
// }
 
// /**
//  * aes-128-ecb对称解密
//  * @param {String} data，解密的密文
//  * @param {String} secretKey，密钥
//  * @param {Buffer} iv，向量，16位字节数组
//  * @return {String} 明文
//  * @api public
//  */
// function cbcDecrypt(data, secretKey, iv) {
//  secretKey = Buffer(secretKey, "utf8");
//  secretKey = crypto.createHash("md5").update(secretKey).digest("hex");
//  secretKey = new Buffer(secretKey, "hex");
//  var cipher = crypto.createDecipheriv("aes-128-cbc", secretKey, iv), coder = [];
//  coder.push(cipher.update(data, "hex", "utf8"))
//  coder.push(cipher.final("utf8"));
//  return coder.join("");
// }
 
// var iv = new Buffer(key,"utf8");
// // var key = "我是密钥";
// var aes_cbc1 = cbcEncrypt(plaintText,key, iv);
// var aes_cbc2 = cbcDecrypt(aes_cbc1,key, iv);
// console.log("密文："+ aes_cbc1," / 明文："+aes_cbc2);
 
// var aes_cbc3 = cbcDecrypt("25d14712c7928aa0b30308c7d147ddb7",key, iv);
// console.log("明文："+aes_cbc3);